/*
闭包：
  1、全局变量特点:    全局变量常驻内存、全局变量污染全局
  2、局部变量的特点：  不常驻内存会被垃圾机制回收、不会污染全局  

  想实现的功能：
    1.常驻内存        
    2.不污染全局   

    产生了闭包,闭包可以解决这个问题.....  
    闭包: 函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收(不会释放内存)
    闭包的写法： 函数嵌套函数，并return 里面的函数，这样就形成了闭包。
*/

//全局变量
var a = 123;

void main() {

  printInfo() {
    //局部变量
    var num = 123;
    num++;
    print(num);
  }
  printInfo();

  //闭包
  fn() {
    var a = 123;
    return (){
      a++;
      print(a);
    };
  }
  var bb = fn();
  bb();
  bb();
  bb();

}